﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using ProyectoVuelos.Presentacion.Contrato;
using ProyectoVuelos.Presentacion.Presentador;
using ProyectoVuelos.Entidades;

namespace ProyectoVuelos.Presentacion.Vista
{
    public partial class CompraVuelo : System.Web.UI.Page, IContratoCompraVuelos
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            this._presentador = new PresentadorCompraVuelos(this);
            this.msn = new Mensaje();
            this.pasajeros = new List<Usuario>();
            //this._presentador.LlenarTablaIda();

        }


        #region Atributos
         PresentadorCompraVuelos _presentador;
          Mensaje msn = new Mensaje();
          List<Usuario> pasajeros = new List<Usuario>();
        #endregion

        #region Constructores

        public CompraVuelo()
        {
          /*this._presentador = new PresentadorCompraVuelos(this);
          this.msn = new Mensaje();  
          this.pasajeros = new List<Usuario>();  */
        }
        #endregion

        #region Propiedades

        public void Redireccionar(string _ruta)
        {
            Response.Redirect(_ruta);
        }

        public Object GetSesion(string sesion)
        {
            return Session[sesion];
        }

        public void SetSesion(string sesion, Object objeto)
        {
            Session[sesion] = objeto;
        }

        public TextBox FormularioPrimerNombre
        {
            get { return formularioPrimerNombre; }
            set { formularioPrimerNombre = value;}
        }

        public Label TextoPrecioTotal
        {
            get { return this.textoPrecioTotal; }
            set { this.textoPrecioTotal = value; }
        }

        public TextBox FormularioSegundoNombre
        {
            get { return formularioSegundoNombre; }
            set { formularioSegundoNombre = value; }
        }

        public TextBox FormularioPrimerApellido
        {
            get { return formularioPrimerApellido; }
            set { formularioPrimerApellido = value; }
        }

        public TextBox FormularioSegundoApellido
        {
            get { return formularioSegundoApellido; }
            set { formularioSegundoApellido = value; }
        }

        public TextBox FormularioPasaporte
        {
            get { return formularioPasaporte; }
            set { formularioPasaporte = value; }
        }

        public TextBox FormularioFechaNacimiento
        {
            get { return formularioFechaNacimiento; }
            set { formularioFechaNacimiento = value; }
        }

        public Label TextoOrigenIda 
        { 
            get { return textoOrigenIda; }
            set { this.textoOrigenIda = value; } 
        }
        public Label TextoDestinoIda 
        { 
            get {  return this.textoDestinoIda; }
            set { this.textoDestinoIda = value; } 
        }
        public Label TextoFechaSalidaIda
        {
            get { return this.textoFechaSalidaIda; }
            set { this.textoFechaSalidaIda = value; }
        }


        public Label TextoFechaLlegadaIda 
        {
            get { return this.textoFechaLlegadaIda; }
            set { this.textoFechaLlegadaIda = value; }
        }

        public Label TextoHoraSalidaIda 
        {
            get { return this.textoHoraSalidaIda; }
            set { this.textoHoraSalidaIda = value; }
        }

        public Label TextoHoraLlegadaIda
        {
            get { return this.textoHoraLlegadaIda; }
            set { this.textoHoraLlegadaIda = value; }
        }

        public Label TextoAerolineaSalidaIda
        {
            get { return this.textoAerolineaSalidaIda; }
            set { this.textoAerolineaSalidaIda = value; }
        } 



        #endregion

        #region Eventos
        protected void botonComprar_Click(object sender, EventArgs e)
        {
           #region Datos Ficticios  

            string tipoVuelo = "I"; 
            List<Tarifa> tarifasFicticia=new List<Tarifa>();
            List<Clase>  clasesFicticia = new List<Clase>();
            tarifasFicticia.Add(new Tarifa("descuento","adulto",6500));
            clasesFicticia.Add(new Clase("turista",100));
            clasesFicticia.Add(new Clase("vip", 100));
            DateTime auxiliar1 = new DateTime();
            DateTime auxiliar2 = new DateTime();
            Vuelo vueloFicticio = new Vuelo("1",auxiliar1,auxiliar2,"09:00:00","09:00:00","Lufthansa",tarifasFicticia,clasesFicticia);
            Vuelo vueloIda = new Vuelo();
            Vuelo vueloVuelta = new Vuelo();
            Usuario persona = new Usuario(this.FormularioPasaporte.Text, "000000", this.formularioPrimerNombre.Text + " " + this.formularioSegundoNombre.Text, this.formularioPrimerApellido.Text + " " + this.formularioSegundoApellido.Text, DateTime.Parse(this.formularioFechaNacimiento.Text), 'M', "usuario@gmail.com", "555555", null);
            this.pasajeros.Add(persona);
            Usuario comprador = new Usuario("1", "1234", "andres", "duran", DateTime.Parse("2012/2/2"), 'M', "sasda", "asdasd", new Cuenta("abeltra", "1234", null, null));
            int identificadorCuenta = 1; //IDENTIFICADOR DE CUENTA
            DateTime aux = DateTime.Now;
            Pago pago = new Pago(aux.ToString("YYYY/MM/DD"), 0, this.TextoBanco.Text, radioFormaPago.Text);


            Session["vueloIda"]=vueloFicticio;
            Session["vueloVuelta"]=vueloFicticio;
            Session["tipoVuelo"]="I";

            if (tipoVuelo.Equals("I"))
            {
                vueloIda   = (Vuelo)Session["vueloIda"];
                this.textoMensajes.Text=Convert.ToString(this._presentador.ComprarVuelo(identificadorCuenta, this.pasajeros, this.listaTipoBoleto.SelectedValue, vueloIda, pago).TipoMensaje);
                //this._presentador.Redireccionar("ResultadoCompra.aspx");
            }
            else
            {
                vueloIda   = (Vuelo)Session["vueloIda"];
                vueloVuelta =(Vuelo)Session["vueloVuelta"];
                /* int idVueloVuelta = Convert.ToInt32(Session["idVueloVuelta"]);
                int idLugarOrigenVuelta = Convert.ToInt32(Session["idLugarOrigenVuelta"]);
                int idLugarDestinoVuelta = Convert.ToInt32(Session["idLugarDestinoVuelta"]);
                int idAerolineaVuelta = Convert.ToInt32(Session["idAerolineaVuelta"]);*/
            }
            /*tarifas=(List<Tarifa>)Session["tarifasIda"];
            clases = (List<Clase>)Session["clasesIda"];*/

            //VUELO DE IDA
           // Vuelo vueloIda = new Vuelo(Convert.ToStringidVueloIda), DateTime.Parse(this.textoFechaSalidaIda.Text), DateTime.Parse(this.textoFechaLlegadaIda.Text), this.textoHoraSalidaIda.Text, this.textoHoraLlegadaIda.Text, this.textoAerolineaSalidaIda.Text, tarifas, clases);
            
           #endregion
           
  
        }




        #endregion
    }
}